class Validate {
  validUsername (str) {
    /**
     * @param {string} path
     * @returns {Boolean}
     */
    const validMap = ['admin', 'editor']
    return validMap.indexOf(str.trim()) >= 0
  }

  isExternal (path) {
    /**
     * @param {string} str
     * @returns {Boolean}
     */
    return /^(https?:|mailto:|tel:)/.test(path)
  }

  isNum (val) {
    /**
     * @param {string} val
     * @returns {Boolean}
     */
    return /^\d*\.?\d+$/.test(val)
  }

  isThreeFloatNum (val) {
    /**
     * @param {string} val
     * @returns {Boolean}
     */
    return /^\d*\.?[\d]{1,3}$/.test(val)
  }

  isCnorEn (val) {
    /**
     * @param {string} val
     * @returns {Boolean}
     */
    return /^[a-zA-Z\u4E00-\u9FA5*\s?]*[a-zA-Z\u4E00-\u9FA5*\s?]$/.test(val)
  }

  isChinese (val) { // 是否中文
    const reg = /^[\u4E00-\u9FA5]+$/
    return reg.test(val)
  }

  isEnglish (val) { // 是否英文
    return /^[A-Za-z]*(\s[A-Za-z]*)*$/.test(val)
  }

  isPrice (val) {
    /**
     * @param {string} val
     * @returns {Boolean}
     */
    // return /^\d{1,}?(\.\d{1,2}){1}$/.test(val)
    return /^\d{1,}?(\.\d{1,2}){0,1}$/.test(val)
  }

  isSetPrice (val) { // 六位整数两位小数
    /**
     * @param {string} val
     * @returns {Boolean}
     */
    return /^\d{1,6}?(\.\d{1,2}){0,1}$/.test(val)
  }

  isSetWeight (val) { // 五位整数三位小数
    /**
     * @param {string} val
     * @returns {Boolean}
     */
    return /^\d{1,5}?(\.\d{1,3}){0,1}$/.test(val)
  }

  isSetRate (val) { // 六位整数四位小数
    /**
     * @param {string} val
     * @returns {Boolean}
     */
    return /^\d{1,6}?(\.\d{1,4}){0,1}$/.test(val)
  }

  isCode (val) { // 是否含有中文和特殊符号
    const reg = /^[A-Za-z0-9]+$/
    if (!reg.test(val)) {
      return false
    } else {
      return true
    }
  }

  isMainWords(val) { // 是否含有有意义的文字内容
    const reg = /^[a-zA-Z\u4E00-\u9FA5*\s?*\d?]*[a-zA-Z\u4E00-\u9FA5*\s?*\d?]$/
    const regNaN = /^[\d+\s?+\d?]+$/
    if (reg.test(val) && !regNaN.test(val)) {
      return true
    } else {
      return false
    }
  }
}

export default new Validate()
